package entityManager;

import java.io.IOException;
import java.util.ArrayList;
import javax.xml.bind.JAXBException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import org.xml.sax.SAXException;

import exception.NullVariableFound;



public interface Manager<E> {

	public boolean add(E _target) throws IOException, JAXBException, TransformerConfigurationException, ParserConfigurationException, SAXException, TransformerException, InstantiationException, IllegalAccessException;

	public boolean remove(E _target) throws IOException, JAXBException, TransformerConfigurationException, ParserConfigurationException, SAXException, TransformerException, InstantiationException, IllegalAccessException, NullVariableFound;

	public boolean update(E _target) throws IOException, JAXBException, TransformerConfigurationException, ParserConfigurationException, SAXException, TransformerException, InstantiationException, IllegalAccessException, NullVariableFound ;

	public E getById(String _id) throws TransformerConfigurationException, InstantiationException, IllegalAccessException, JAXBException, ParserConfigurationException, SAXException, IOException, TransformerException;

	public ArrayList<E> getByKeyword(String _keyword) throws TransformerConfigurationException, InstantiationException, IllegalAccessException, JAXBException, ParserConfigurationException, SAXException, IOException, TransformerException;

	public ArrayList<E> getAll() throws TransformerConfigurationException, InstantiationException, IllegalAccessException, JAXBException, ParserConfigurationException, SAXException, IOException, TransformerException;
}
